package com.furongji.education.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.furongji.common.domain.vo.CourseViewCountVo;
import com.furongji.common.domain.vo.VideoPlayPageVo;
import com.furongji.education.domain.dto.CourseDto;
import com.furongji.education.domain.po.Course;
import com.baomidou.mybatisplus.extension.service.IService;
import com.furongji.common.domain.query.CourseQuery;
import com.furongji.education.domain.query.CourseFrontQuery;
import com.furongji.education.domain.vo.CourseFrontVo;
import com.furongji.education.domain.vo.CoursePublishVo;

import java.util.List;

/**
 * <p>
 * 课程 服务类
 * </p>
 *
 * @author furongji
 * @since 2025-05-19
 */
public interface CourseService extends IService<Course> {

    String saveCourse(CourseDto courseDto);

    CoursePublishVo getPublishCourseInfo(String id);

    IPage<Course> pageCourseQuery(IPage<Course> page, CourseQuery courseQuery);

    void deleteCourseById(String id);

    List<Course> getApiCourseInfoByTeacherId(String teacherId);

    Object getIndexCourseList(Integer current, Integer size, CourseQuery courseQuery);

    CourseFrontVo getApiCourseInfo(String courseId,String userId);

    IPage<Course> getApiCourseList(IPage<Course> page, CourseFrontQuery courseFrontQuery);

    VideoPlayPageVo getCourseInfoWithSections(String videoId);

    Integer courseInsertCount(String date);

}
